#pragma once

#include <vector>

//////////////////debug/////////////////////
void printLog()
{
    std::cout << "这是一个打印日志的任务" << std::endl;
}

void download()
{
    std::cout << "这是一个下载的任务" << std::endl;
}

void upload()
{
    std::cout << "这是一个上传的任务" << std::endl;
}
//////////////////debug/////////////////////


typedef void(*task_t)();

class TaskManager
{
public:

    TaskManager()
    {
        ;
    }

    void registered(task_t task)
    {
        _tasks.push_back(task);
    }

    int code()
    {
        return rand() % _tasks.size();
    }

    void execute(int code)
    {
        if (code >= 0 && code < _tasks.size())
        {
            _tasks[code]();
        }
    }

    ~TaskManager()
    {
        ;
    }

private:

    std::vector<task_t> _tasks;
};